# Usage with Apollo Server

```js
import { ApolloServer } from 'apollo-server'
// import all scalars and resolvers from graphql-scalars
import { resolvers as scalarResolvers, typeDefs as scalarTypeDefs } from 'graphql-scalars'
// Alternatively, import individual scalars and resolvers
// import { DateTimeResolver, DateTimeTypeDefinition, ... } from "graphql-scalars"
// Example import of your own defined resolvers
import { resolvers } from './src/resolvers'

// Example importing of your own defined type definitions
const typeDefs = fs.readFileSync(path.join(path.resolve(), './src/schema.graphql'), 'utf-8')

const server = new ApolloServer({
  typeDefs: [
    // use spread syntax(since typeDefs from `graphql-scalars` come as an array) to add all `grahql-scalars` scalar definitions to your typeDefs array
    ...scalarTypeDefs,
    //Or you can add individual scalar definitions to your typeDefs array like this
    DateTimeTypeDefinition,
    // then add your own defined type definitions to your typeDefs array like this(without using spread syntax since this is usually a single string, unless otherwise)
    typeDefs
  ],
  resolvers: {
    // use spread syntax to add all scalar resolvers(from grahql-scalars) to your resolver map
    ...scalarResolvers,
    // Or you can add individual scalar resolvers to your resolver map like this
    DateTimeResolver,
    // then use spread syntax to add your own defined resolvers to your resolver map like this
    ...resolvers
  }
})

server.listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`)
})
```
